Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

102

Games Picked

152

Number of predictions

121

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Baltimore Ravens Baltimore Ravens Yes 115 0.9504
2 New York Giants Carolina Panthers No 31 0.2562
3 Buffalo Bills Buffalo Bills Yes 117 0.9669
4 Atlanta Falcons New Orleans Saints No 4 0.0331
5 Kansas City Chiefs Kansas City Chiefs Yes 116 0.9587
6 Minnesota Vikings Minnesota Vikings Yes 119 0.9835
7 Chicago Bears New England Patriots No 19 0.1570
8 Washington Commanders Pittsburgh Steelers No 48 0.3967
9 San Francisco 49ers San Francisco 49ers Yes 63 0.5207
10 Los Angeles Chargers Los Angeles Chargers Yes 117 0.9669
11 Arizona Cardinals Arizona Cardinals Yes 98 0.8099
12 Philadelphia Eagles Philadelphia Eagles Yes 113 0.9339
13 Detroit Lions Detroit Lions Yes 108 0.8926
14 Los Angeles Rams Miami Dolphins No 18 0.1488

Individual Predictions

row

Individual Table

Individual Results
Week 10
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10
George Brown 14 7 8 7 6 11 10 12 9 12 0.8571 10 0.6316 0.6316
Nicholas Cinco 12 8 NA NA 6 11 11 12 11 11 0.7857 8 0.6833 0.5466
Keven Talbert 10 7 9 11 9 14 13 9 9 11 0.7857 10 0.6711 0.6711
Randy Dick 11 7 8 8 9 14 10 10 13 11 0.7857 10 0.6645 0.6645
Shaun Dahl 14 7 9 11 10 10 10 8 9 11 0.7857 10 0.6513 0.6513
Rafael Torres 12 9 8 7 8 10 12 10 12 11 0.7857 10 0.6513 0.6513
Daniel Halse 12 6 8 10 7 13 9 11 11 11 0.7857 10 0.6447 0.6447
Clevante Granville 9 11 NA NA 5 11 11 9 10 11 0.7857 8 0.6417 0.5134
David Humes 10 9 8 11 5 8 12 8 12 11 0.7857 10 0.6184 0.6184
Jose Torres Mendoza 12 8 8 8 NA NA 8 9 10 11 0.7857 8 0.5968 0.4774
Andrew Gray 5 8 9 7 NA NA 7 9 7 11 0.7857 8 0.5081 0.4065
Brittany Pillar NA NA NA NA NA 10 12 NA NA 10 0.7143 3 0.7442 0.2233
Robert Gelo 14 8 9 9 8 13 13 11 12 10 0.7143 10 0.7039 0.7039
Jeremy Krammes 12 NA NA NA NA NA NA 10 NA 10 0.7143 3 0.6957 0.2087
Bruce Williams 13 9 10 8 9 13 12 10 NA 10 0.7143 9 0.6861 0.6175
Marc Agne 14 7 9 13 6 13 10 9 12 10 0.7143 10 0.6776 0.6776
Jeremy Mounce 12 8 8 NA 10 12 NA NA NA 10 0.7143 6 0.6667 0.4000
Patrick Tynan 12 8 7 9 8 12 NA 12 12 10 0.7143 9 0.6569 0.5912
George Hall 12 NA 8 NA NA NA NA NA NA 10 0.7143 3 0.6522 0.1957
James Small 12 NA 9 10 8 10 9 9 10 10 0.7143 9 0.6397 0.5757
Brandon Parks 12 6 9 9 6 13 NA NA 12 10 0.7143 8 0.6364 0.5091
Paul Presti 12 8 9 12 7 11 8 10 NA 10 0.7143 9 0.6350 0.5715
Ryan Baum 14 4 9 10 9 NA 10 10 11 10 0.7143 9 0.6304 0.5674
Kevin Buettner 12 8 8 10 7 11 10 9 10 10 0.7143 10 0.6250 0.6250
Daniel Baller 14 6 9 8 7 9 10 12 10 10 0.7143 10 0.6250 0.6250
Walter Archambo 8 8 7 9 6 12 11 11 12 10 0.7143 10 0.6184 0.6184
Thomas Mccoy 10 7 6 8 9 11 11 10 12 10 0.7143 10 0.6184 0.6184
Stephen Bush 9 7 4 10 9 13 13 9 10 10 0.7143 10 0.6184 0.6184
David Plate 10 8 8 8 9 NA NA NA 13 10 0.7143 7 0.6168 0.4318
Daniel Major 8 10 11 6 8 11 NA 10 10 10 0.7143 9 0.6131 0.5518
Scott Lefton 10 8 8 7 7 11 11 10 11 10 0.7143 10 0.6118 0.6118
Jonathon Leslein 10 8 7 10 8 12 10 10 8 10 0.7143 10 0.6118 0.6118
Noah Gosswiller 8 7 NA 10 8 NA 10 11 10 10 0.7143 8 0.6066 0.4853
Karen Richardson 10 9 7 9 11 8 8 12 8 10 0.7143 10 0.6053 0.6053
Montee Brown 10 6 8 7 8 14 11 10 8 10 0.7143 10 0.6053 0.6053
Jeffrey Zornes 9 11 6 8 7 10 9 11 9 10 0.7143 10 0.5921 0.5921
Cade Martinez 10 7 8 8 6 11 11 9 10 10 0.7143 10 0.5921 0.5921
Melissa Printup 8 9 9 6 10 10 10 10 7 10 0.7143 10 0.5855 0.5855
Cheryl Brown 11 6 9 8 8 10 NA 9 8 10 0.7143 9 0.5766 0.5189
Jason Jackson 12 7 5 6 5 12 9 11 10 10 0.7143 10 0.5724 0.5724
Robert Cunningham 14 9 10 12 8 12 11 11 12 9 0.6429 10 0.7105 0.7105
Matthew Blair NA NA NA NA NA 11 10 12 10 9 0.6429 5 0.7027 0.3514
Randolph Tidd 11 7 8 12 NA 12 11 12 13 9 0.6429 9 0.6884 0.6196
Nathan Brown 13 8 9 11 9 NA 10 11 14 9 0.6429 9 0.6812 0.6131
Michael Pacifico 13 8 7 9 9 12 12 10 14 9 0.6429 10 0.6776 0.6776
Aubrey Conn 13 7 10 9 8 12 12 9 13 9 0.6429 10 0.6711 0.6711
Christopher Sims 11 9 10 8 7 10 12 14 11 9 0.6429 10 0.6645 0.6645
Travis Delagardelle 11 12 10 8 6 11 12 11 11 9 0.6429 10 0.6645 0.6645
Chester Todd 13 8 8 8 9 13 13 10 9 9 0.6429 10 0.6579 0.6579
Erik Neumann 12 8 9 9 7 13 10 11 12 9 0.6429 10 0.6579 0.6579
Heather Ellenberger 13 8 7 8 7 12 11 11 13 9 0.6429 10 0.6513 0.6513
Shawn Carden 10 9 10 10 8 11 10 11 11 9 0.6429 10 0.6513 0.6513
Jeremy Stieler 11 9 6 11 6 13 11 11 11 9 0.6429 10 0.6447 0.6447
Bryson Scott 10 9 7 NA 7 12 11 12 10 9 0.6429 9 0.6397 0.5757
Michael Moss 13 8 8 8 10 13 8 9 11 9 0.6429 10 0.6382 0.6382
Gregory Brown 15 7 6 9 8 12 9 9 13 9 0.6429 10 0.6382 0.6382
Robert Sokol 10 8 NA NA 6 9 9 13 12 9 0.6429 8 0.6333 0.5066
Nicole Dike 13 7 8 10 7 10 10 12 10 9 0.6429 10 0.6316 0.6316
Jeffrey Rudderforth 11 11 10 9 6 7 10 11 12 9 0.6429 10 0.6316 0.6316
Jared Kaanga 11 9 9 8 7 10 9 11 13 9 0.6429 10 0.6316 0.6316
Brayant Rivera 10 8 9 8 6 13 11 10 12 9 0.6429 10 0.6316 0.6316
Jennifer Bouland 13 8 10 7 8 11 10 11 9 9 0.6429 10 0.6316 0.6316
Darryle Sellers 11 11 6 8 9 11 9 10 12 9 0.6429 10 0.6316 0.6316
Jason Schattel 13 7 6 9 10 11 9 10 11 9 0.6429 10 0.6250 0.6250
Nahir Shepard 11 8 10 8 6 12 8 12 9 9 0.6429 10 0.6118 0.6118
Jennifer Arty 10 7 9 7 7 12 8 12 11 9 0.6429 10 0.6053 0.6053
Michael Branson 9 8 8 9 8 11 9 11 10 9 0.6429 10 0.6053 0.6053
Thomas Brenstuhl 9 8 NA 6 7 9 10 13 11 9 0.6429 9 0.6029 0.5426
Terry Hardison 13 8 6 7 4 11 10 12 11 9 0.6429 10 0.5987 0.5987
Darvin Graham 12 7 6 9 8 11 9 NA 10 9 0.6429 9 0.5956 0.5360
Earl Dixon 10 9 6 9 9 NA 11 10 9 9 0.6429 9 0.5942 0.5348
Nicholas Nguyen 11 8 5 8 7 12 11 9 10 9 0.6429 10 0.5921 0.5921
Kristen White 14 7 9 9 8 9 9 8 8 9 0.6429 10 0.5921 0.5921
Edward Ford 9 7 6 10 5 10 10 13 11 9 0.6429 10 0.5921 0.5921
Rachel Follo 15 8 6 6 9 7 10 11 9 9 0.6429 10 0.5921 0.5921
George Mancini 11 8 6 NA 8 6 12 NA 11 9 0.6429 8 0.5917 0.4734
Brian Patterson 11 6 9 9 6 NA 9 13 NA 9 0.6429 8 0.5854 0.4683
Christopher Mulcahy 11 9 7 8 NA 8 9 9 10 9 0.6429 9 0.5797 0.5217
Yiming Hu 12 NA 7 7 6 8 12 9 NA 9 0.6429 8 0.5785 0.4628
Anthony Rockemore 13 8 6 8 7 NA 8 NA NA 9 0.6429 7 0.5514 0.3860
Robert Lynch 6 9 8 6 9 7 7 12 NA 9 0.6429 9 0.5328 0.4795
Gary Lawrence 10 6 5 5 7 9 9 10 9 9 0.6429 10 0.5197 0.5197
Steven Maisonneuve NA NA NA NA 11 10 11 12 11 8 0.5714 6 0.7159 0.4295
Chris Papageorge 14 8 10 11 8 12 12 12 11 8 0.5714 10 0.6974 0.6974
Heather Kohler 12 NA 7 12 9 11 NA 12 NA 8 0.5714 7 0.6698 0.4689
Kevin Kehoe 13 7 9 10 8 13 12 11 9 8 0.5714 10 0.6579 0.6579
Matthew Schultz 13 10 9 8 9 9 9 12 11 8 0.5714 10 0.6447 0.6447
Bradley Hobson 13 7 8 11 7 13 10 10 11 8 0.5714 10 0.6447 0.6447
Michelle Fraterrigo 11 8 9 9 7 11 12 12 11 8 0.5714 10 0.6447 0.6447
Karen Coleman 13 6 NA 11 9 9 10 9 11 8 0.5714 9 0.6324 0.5692
Steward Hogans 10 7 10 NA NA NA NA 10 13 8 0.5714 6 0.6237 0.3742
Antonio Mitchell 11 7 8 9 9 11 10 11 10 8 0.5714 10 0.6184 0.6184
Richard Beeghley 11 7 6 11 7 14 10 10 10 8 0.5714 10 0.6184 0.6184
Brian Hollmann NA NA NA 8 8 10 10 11 9 8 0.5714 7 0.6154 0.4308
Keisha Vasquez 8 7 9 9 11 11 9 12 8 8 0.5714 10 0.6053 0.6053
Ramar Williams 10 8 7 11 8 11 11 10 8 8 0.5714 10 0.6053 0.6053
Vincent Scannelli 11 7 7 11 8 8 11 12 9 8 0.5714 10 0.6053 0.6053
Amy Asberry 11 8 6 10 NA 12 9 NA 9 8 0.5714 8 0.5984 0.4787
Kamar Morgan 12 6 8 5 8 12 9 12 10 8 0.5714 10 0.5921 0.5921
Louie Renew 9 8 12 4 10 8 8 11 11 8 0.5714 10 0.5855 0.5855
Bunnaro Sun 12 5 8 11 6 8 9 9 12 8 0.5714 10 0.5789 0.5789
Akilah Gamble 9 NA 12 9 6 8 12 6 NA 8 0.5714 8 0.5785 0.4628
Kyle May 10 8 5 6 8 NA 12 10 9 8 0.5714 9 0.5507 0.4956
Jack Wheeler 9 6 5 10 8 NA 9 9 10 8 0.5714 9 0.5362 0.4826
Wayne Schofield 7 5 9 5 7 7 11 11 10 8 0.5714 10 0.5263 0.5263
Steven Webster 7 7 9 6 7 9 NA 11 NA 8 0.5714 8 0.5246 0.4197
Anthony Bloss 13 8 8 11 8 13 11 11 9 7 0.5000 10 0.6513 0.6513
George Sweet 13 9 6 10 11 9 11 11 12 7 0.5000 10 0.6513 0.6513
Ryan Cvik 10 8 9 11 9 11 11 13 10 7 0.5000 10 0.6513 0.6513
William Schouviller 12 7 9 9 11 13 10 9 NA 7 0.5000 9 0.6350 0.5715
Paul Seitz 11 9 9 NA 8 10 11 NA NA 7 0.5000 7 0.6190 0.4333
Pablo Burgosramos 9 5 8 9 5 14 12 12 12 7 0.5000 10 0.6118 0.6118
Diance Durand 9 9 12 7 8 10 9 11 11 7 0.5000 10 0.6118 0.6118
Matthew Olguin 10 8 9 9 7 12 11 11 9 7 0.5000 10 0.6118 0.6118
Trevor Macgavin 12 7 10 8 8 8 9 7 10 7 0.5000 10 0.5658 0.5658
Ronald Schmidt 10 10 5 9 6 8 12 10 NA 7 0.5000 9 0.5620 0.5058
Joshua Tracey 12 5 8 6 7 NA 9 13 10 7 0.5000 9 0.5580 0.5022
Jonathan Smith 11 NA 4 10 7 NA 8 11 10 7 0.5000 8 0.5574 0.4459
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 10 7 7 0.5000 7 0.5283 0.3698
Robert Martin 7 NA 9 8 8 8 7 NA 8 7 0.5000 8 0.5167 0.4134
Marcus Evans 11 8 NA 8 7 10 7 9 10 6 0.4286 9 0.5588 0.5029
Clayton Grimes 14 NA NA NA NA NA NA NA NA NA 0.0000 1 0.8750 0.0875
Tanaysa Henderson NA NA NA NA NA 12 NA NA NA NA 0.0000 1 0.8571 0.0857
Wallace Savage 12 NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0750
Brian Holder 12 NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0750
Sandra Carter 12 NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0750
Ryan Wiggins NA NA NA NA NA NA NA NA 11 NA 0.0000 1 0.7333 0.0733
Terrence Lee 11 NA NA NA NA NA NA NA NA NA 0.0000 1 0.6875 0.0688
Daniel Gray 11 NA NA NA NA NA NA NA NA NA 0.0000 1 0.6875 0.0688
David Dupree 13 8 10 9 7 11 11 11 12 NA 0.0000 9 0.6667 0.6000
Michael Linder 11 9 9 NA NA 12 10 11 10 NA 0.0000 7 0.6667 0.4667
Pamela Augustine 14 9 9 NA 7 11 9 NA 10 NA 0.0000 7 0.6509 0.4556
Philip Driskill 12 7 8 10 8 NA 13 11 10 NA 0.0000 8 0.6371 0.5097
Jordan Forwood 11 8 6 11 NA 13 NA 10 NA NA 0.0000 6 0.6277 0.3766
Kenneth Nielsen 13 8 7 NA 8 9 11 10 NA NA 0.0000 7 0.6168 0.4318
Anthony Brinson 11 7 NA 9 10 11 9 12 6 NA 0.0000 8 0.6148 0.4918
David Hadley 13 10 8 NA 8 NA 8 NA NA NA 0.0000 5 0.6104 0.3052
Derrick Elam 13 9 8 11 7 10 8 9 NA NA 0.0000 8 0.6098 0.4878
Wayne Gokey 13 7 NA 11 NA NA 8 NA 8 NA 0.0000 5 0.6026 0.3013
Jonathan Knight 13 10 9 6 7 NA 11 NA NA NA 0.0000 6 0.6022 0.3613
Kevin Green 11 9 NA 8 7 12 NA 8 NA NA 0.0000 6 0.5978 0.3587
Jeffrey Dusza 11 8 NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.1188
Cherylynn Vidal 13 9 8 8 NA NA NA NA NA NA 0.0000 4 0.5938 0.2375
Adam Konkle 10 9 NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.1188
Megan Fitzgerald 8 11 9 10 NA NA 8 10 NA NA 0.0000 6 0.5895 0.3537
Thomas Cho 10 6 NA 11 7 12 NA 8 9 NA 0.0000 7 0.5888 0.4122
Tara Bridgett 11 8 8 8 NA 9 NA 10 10 NA 0.0000 7 0.5872 0.4110
Zechariah Ziebarth 8 8 8 10 5 10 10 11 11 NA 0.0000 9 0.5870 0.5283
Jason Miranda 10 7 8 NA 9 11 8 NA NA NA 0.0000 6 0.5824 0.3494
Jennifer Wilson 11 9 10 6 NA 7 11 NA NA NA 0.0000 6 0.5806 0.3484
Ryan Shipley 11 6 10 8 5 9 11 NA 10 NA 0.0000 8 0.5738 0.4590
Michael Moore 11 6 7 7 8 12 NA 9 9 NA 0.0000 8 0.5610 0.4488
Joseph Martin 10 7 8 8 8 10 9 NA NA NA 0.0000 7 0.5607 0.3925
Desmond Jenkins 10 7 7 NA 7 12 8 NA NA NA 0.0000 6 0.5604 0.3362
Min Choi 10 NA 7 NA 8 7 NA 10 NA NA 0.0000 5 0.5526 0.2763
Richard Conkle 7 6 6 8 7 10 12 11 9 NA 0.0000 9 0.5507 0.4956
Lawrence Thuotte 9 5 12 NA 8 NA NA NA NA NA 0.0000 4 0.5484 0.2194
Donald Park 9 NA 6 NA NA 10 NA NA NA NA 0.0000 3 0.5435 0.1630
Gabriel Quinones 10 7 6 9 NA 11 8 7 NA NA 0.0000 7 0.5321 0.3725
Monte Henderson 9 8 NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.1062
David Kim 9 8 NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.1062
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA NA NA NA 0.0000 6 0.5217 0.3130
Jay Kelly 10 9 7 7 5 10 7 NA NA NA 0.0000 7 0.5140 0.3598
Zachary Brosemer 8 NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0500
Antonio Chapa 8 NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0500
Vincent Kandian 9 8 8 7 NA NA NA NA NA NA 0.0000 4 0.5000 0.2000
Ashlyn Dortch 9 NA NA 8 NA 5 9 6 NA NA 0.0000 5 0.4805 0.2402
Gabrieal Feiling 10 NA 5 NA NA NA NA NA NA NA 0.0000 2 0.4688 0.0938
Ashley Johnson 9 NA 6 NA 6 NA NA NA NA NA 0.0000 3 0.4565 0.1369
Jasprin Smith 6 NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0375
Robert Epps NA 6 NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0375

Season Leaderboard

Season Leaderboard (Season Percent)
Week 10
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.0875
2 Tanaysa Henderson 0 1 0.8571 0.0857
3 Brian Holder 0 1 0.7500 0.0750
3 Sandra Carter 0 1 0.7500 0.0750
3 Wallace Savage 0 1 0.7500 0.0750
6 Brittany Pillar 0 3 0.7442 0.2233
7 Ryan Wiggins 0 1 0.7333 0.0733
8 Steven Maisonneuve 1 6 0.7159 0.4295
9 Robert Cunningham 0 10 0.7105 0.7105
10 Robert Gelo 1 10 0.7039 0.7039
11 Matthew Blair 0 5 0.7027 0.3514
12 Chris Papageorge 0 10 0.6974 0.6974
13 Jeremy Krammes 0 3 0.6957 0.2087
14 Randolph Tidd 0 9 0.6884 0.6196
15 Daniel Gray 0 1 0.6875 0.0688
15 Terrence Lee 0 1 0.6875 0.0688
17 Bruce Williams 0 9 0.6861 0.6175
18 Nicholas Cinco 0 8 0.6833 0.5466
19 Nathan Brown 1 9 0.6812 0.6131
20 Marc Agne 1 10 0.6776 0.6776
20 Michael Pacifico 1 10 0.6776 0.6776
22 Aubrey Conn 0 10 0.6711 0.6711
22 Keven Talbert 2 10 0.6711 0.6711
24 Heather Kohler 0 7 0.6698 0.4689
25 David Dupree 0 9 0.6667 0.6000
25 Jeremy Mounce 0 6 0.6667 0.4000
25 Michael Linder 0 7 0.6667 0.4667
28 Christopher Sims 1 10 0.6645 0.6645
28 Randy Dick 1 10 0.6645 0.6645
28 Travis Delagardelle 1 10 0.6645 0.6645
31 Chester Todd 1 10 0.6579 0.6579
31 Erik Neumann 0 10 0.6579 0.6579
31 Kevin Kehoe 0 10 0.6579 0.6579
34 Patrick Tynan 0 9 0.6569 0.5912
35 George Hall 0 3 0.6522 0.1957
36 Anthony Bloss 0 10 0.6513 0.6513
36 George Sweet 1 10 0.6513 0.6513
36 Heather Ellenberger 0 10 0.6513 0.6513
36 Rafael Torres 0 10 0.6513 0.6513
36 Ryan Cvik 0 10 0.6513 0.6513
36 Shaun Dahl 0 10 0.6513 0.6513
36 Shawn Carden 0 10 0.6513 0.6513
43 Pamela Augustine 0 7 0.6509 0.4556
44 Bradley Hobson 0 10 0.6447 0.6447
44 Daniel Halse 0 10 0.6447 0.6447
44 Jeremy Stieler 0 10 0.6447 0.6447
44 Matthew Schultz 0 10 0.6447 0.6447
44 Michelle Fraterrigo 0 10 0.6447 0.6447
49 Clevante Granville 0 8 0.6417 0.5134
50 Bryson Scott 0 9 0.6397 0.5757
50 James Small 0 9 0.6397 0.5757
52 Gregory Brown 1 10 0.6382 0.6382
52 Michael Moss 0 10 0.6382 0.6382
54 Philip Driskill 1 8 0.6371 0.5097
55 Brandon Parks 0 8 0.6364 0.5091
56 Paul Presti 0 9 0.6350 0.5715
56 William Schouviller 1 9 0.6350 0.5715
58 Robert Sokol 0 8 0.6333 0.5066
59 Karen Coleman 0 9 0.6324 0.5692
60 Brayant Rivera 0 10 0.6316 0.6316
60 Darryle Sellers 0 10 0.6316 0.6316
60 George Brown 1 10 0.6316 0.6316
60 Jared Kaanga 0 10 0.6316 0.6316
60 Jeffrey Rudderforth 0 10 0.6316 0.6316
60 Jennifer Bouland 0 10 0.6316 0.6316
60 Nicole Dike 0 10 0.6316 0.6316
67 Ryan Baum 0 9 0.6304 0.5674
68 Jordan Forwood 0 6 0.6277 0.3766
69 Daniel Baller 0 10 0.6250 0.6250
69 Jason Schattel 0 10 0.6250 0.6250
69 Kevin Buettner 0 10 0.6250 0.6250
72 Steward Hogans 0 6 0.6237 0.3742
73 Paul Seitz 0 7 0.6190 0.4333
74 Antonio Mitchell 0 10 0.6184 0.6184
74 David Humes 0 10 0.6184 0.6184
74 Richard Beeghley 1 10 0.6184 0.6184
74 Stephen Bush 1 10 0.6184 0.6184
74 Thomas Mccoy 0 10 0.6184 0.6184
74 Walter Archambo 0 10 0.6184 0.6184
80 David Plate 0 7 0.6168 0.4318
80 Kenneth Nielsen 0 7 0.6168 0.4318
82 Brian Hollmann 0 7 0.6154 0.4308
83 Anthony Brinson 0 8 0.6148 0.4918
84 Daniel Major 0 9 0.6131 0.5518
85 Diance Durand 1 10 0.6118 0.6118
85 Jonathon Leslein 0 10 0.6118 0.6118
85 Matthew Olguin 0 10 0.6118 0.6118
85 Nahir Shepard 0 10 0.6118 0.6118
85 Pablo Burgosramos 1 10 0.6118 0.6118
85 Scott Lefton 0 10 0.6118 0.6118
91 David Hadley 0 5 0.6104 0.3052
92 Derrick Elam 0 8 0.6098 0.4878
93 Noah Gosswiller 0 8 0.6066 0.4853
94 Jennifer Arty 0 10 0.6053 0.6053
94 Karen Richardson 1 10 0.6053 0.6053
94 Keisha Vasquez 1 10 0.6053 0.6053
94 Michael Branson 0 10 0.6053 0.6053
94 Montee Brown 1 10 0.6053 0.6053
94 Ramar Williams 0 10 0.6053 0.6053
94 Vincent Scannelli 0 10 0.6053 0.6053
101 Thomas Brenstuhl 0 9 0.6029 0.5426
102 Wayne Gokey 0 5 0.6026 0.3013
103 Jonathan Knight 0 6 0.6022 0.3613
104 Terry Hardison 0 10 0.5987 0.5987
105 Amy Asberry 0 8 0.5984 0.4787
106 Kevin Green 0 6 0.5978 0.3587
107 Jose Torres Mendoza 0 8 0.5968 0.4774
108 Darvin Graham 0 9 0.5956 0.5360
109 Earl Dixon 0 9 0.5942 0.5348
110 Adam Konkle 0 2 0.5938 0.1188
110 Cherylynn Vidal 0 4 0.5938 0.2375
110 Jeffrey Dusza 0 2 0.5938 0.1188
113 Cade Martinez 0 10 0.5921 0.5921
113 Edward Ford 0 10 0.5921 0.5921
113 Jeffrey Zornes 0 10 0.5921 0.5921
113 Kamar Morgan 0 10 0.5921 0.5921
113 Kristen White 0 10 0.5921 0.5921
113 Nicholas Nguyen 0 10 0.5921 0.5921
113 Rachel Follo 1 10 0.5921 0.5921
120 George Mancini 0 8 0.5917 0.4734
121 Megan Fitzgerald 0 6 0.5895 0.3537
122 Thomas Cho 0 7 0.5888 0.4122
123 Tara Bridgett 0 7 0.5872 0.4110
124 Zechariah Ziebarth 0 9 0.5870 0.5283
125 Louie Renew 1 10 0.5855 0.5855
125 Melissa Printup 0 10 0.5855 0.5855
127 Brian Patterson 0 8 0.5854 0.4683
128 Jason Miranda 0 6 0.5824 0.3494
129 Jennifer Wilson 0 6 0.5806 0.3484
130 Christopher Mulcahy 0 9 0.5797 0.5217
131 Bunnaro Sun 0 10 0.5789 0.5789
132 Akilah Gamble 1 8 0.5785 0.4628
132 Yiming Hu 0 8 0.5785 0.4628
134 Cheryl Brown 0 9 0.5766 0.5189
135 Ryan Shipley 0 8 0.5738 0.4590
136 Jason Jackson 0 10 0.5724 0.5724
137 Trevor Macgavin 0 10 0.5658 0.5658
138 Ronald Schmidt 0 9 0.5620 0.5058
139 Michael Moore 0 8 0.5610 0.4488
140 Joseph Martin 0 7 0.5607 0.3925
141 Desmond Jenkins 0 6 0.5604 0.3362
142 Marcus Evans 0 9 0.5588 0.5029
143 Joshua Tracey 0 9 0.5580 0.5022
144 Jonathan Smith 0 8 0.5574 0.4459
145 Min Choi 0 5 0.5526 0.2763
146 Anthony Rockemore 0 7 0.5514 0.3860
147 Kyle May 0 9 0.5507 0.4956
147 Richard Conkle 0 9 0.5507 0.4956
149 Lawrence Thuotte 1 4 0.5484 0.2194
150 Donald Park 0 3 0.5435 0.1630
151 Jack Wheeler 0 9 0.5362 0.4826
152 Robert Lynch 0 9 0.5328 0.4795
153 Gabriel Quinones 0 7 0.5321 0.3725
154 David Kim 0 2 0.5312 0.1062
154 Monte Henderson 0 2 0.5312 0.1062
156 Sheryl Claiborne-Smith 0 7 0.5283 0.3698
157 Wayne Schofield 0 10 0.5263 0.5263
158 Steven Webster 0 8 0.5246 0.4197
159 Jamie Ainsleigh-Wong 0 6 0.5217 0.3130
160 Gary Lawrence 0 10 0.5197 0.5197
161 Robert Martin 0 8 0.5167 0.4134
162 Jay Kelly 0 7 0.5140 0.3598
163 Andrew Gray 0 8 0.5081 0.4065
164 Antonio Chapa 0 1 0.5000 0.0500
164 Vincent Kandian 0 4 0.5000 0.2000
164 Zachary Brosemer 0 1 0.5000 0.0500
167 Ashlyn Dortch 0 5 0.4805 0.2402
168 Gabrieal Feiling 0 2 0.4688 0.0938
169 Ashley Johnson 0 3 0.4565 0.1369
170 Jasprin Smith 0 1 0.3750 0.0375
170 Robert Epps 0 1 0.3750 0.0375

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 10
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Robert Cunningham 0 10 0.7105 0.7105
2 Robert Gelo 1 10 0.7039 0.7039
3 Chris Papageorge 0 10 0.6974 0.6974
4 Marc Agne 1 10 0.6776 0.6776
4 Michael Pacifico 1 10 0.6776 0.6776
6 Aubrey Conn 0 10 0.6711 0.6711
6 Keven Talbert 2 10 0.6711 0.6711
8 Christopher Sims 1 10 0.6645 0.6645
8 Randy Dick 1 10 0.6645 0.6645
8 Travis Delagardelle 1 10 0.6645 0.6645
11 Chester Todd 1 10 0.6579 0.6579
11 Erik Neumann 0 10 0.6579 0.6579
11 Kevin Kehoe 0 10 0.6579 0.6579
14 Anthony Bloss 0 10 0.6513 0.6513
14 George Sweet 1 10 0.6513 0.6513
14 Heather Ellenberger 0 10 0.6513 0.6513
14 Rafael Torres 0 10 0.6513 0.6513
14 Ryan Cvik 0 10 0.6513 0.6513
14 Shaun Dahl 0 10 0.6513 0.6513
14 Shawn Carden 0 10 0.6513 0.6513
21 Bradley Hobson 0 10 0.6447 0.6447
21 Daniel Halse 0 10 0.6447 0.6447
21 Jeremy Stieler 0 10 0.6447 0.6447
21 Matthew Schultz 0 10 0.6447 0.6447
21 Michelle Fraterrigo 0 10 0.6447 0.6447
26 Gregory Brown 1 10 0.6382 0.6382
26 Michael Moss 0 10 0.6382 0.6382
28 Brayant Rivera 0 10 0.6316 0.6316
28 Darryle Sellers 0 10 0.6316 0.6316
28 George Brown 1 10 0.6316 0.6316
28 Jared Kaanga 0 10 0.6316 0.6316
28 Jeffrey Rudderforth 0 10 0.6316 0.6316
28 Jennifer Bouland 0 10 0.6316 0.6316
28 Nicole Dike 0 10 0.6316 0.6316
35 Daniel Baller 0 10 0.6250 0.6250
35 Jason Schattel 0 10 0.6250 0.6250
35 Kevin Buettner 0 10 0.6250 0.6250
38 Randolph Tidd 0 9 0.6884 0.6196
39 Antonio Mitchell 0 10 0.6184 0.6184
39 David Humes 0 10 0.6184 0.6184
39 Richard Beeghley 1 10 0.6184 0.6184
39 Stephen Bush 1 10 0.6184 0.6184
39 Thomas Mccoy 0 10 0.6184 0.6184
39 Walter Archambo 0 10 0.6184 0.6184
45 Bruce Williams 0 9 0.6861 0.6175
46 Nathan Brown 1 9 0.6812 0.6131
47 Diance Durand 1 10 0.6118 0.6118
47 Jonathon Leslein 0 10 0.6118 0.6118
47 Matthew Olguin 0 10 0.6118 0.6118
47 Nahir Shepard 0 10 0.6118 0.6118
47 Pablo Burgosramos 1 10 0.6118 0.6118
47 Scott Lefton 0 10 0.6118 0.6118
53 Jennifer Arty 0 10 0.6053 0.6053
53 Karen Richardson 1 10 0.6053 0.6053
53 Keisha Vasquez 1 10 0.6053 0.6053
53 Michael Branson 0 10 0.6053 0.6053
53 Montee Brown 1 10 0.6053 0.6053
53 Ramar Williams 0 10 0.6053 0.6053
53 Vincent Scannelli 0 10 0.6053 0.6053
60 David Dupree 0 9 0.6667 0.6000
61 Terry Hardison 0 10 0.5987 0.5987
62 Cade Martinez 0 10 0.5921 0.5921
62 Edward Ford 0 10 0.5921 0.5921
62 Jeffrey Zornes 0 10 0.5921 0.5921
62 Kamar Morgan 0 10 0.5921 0.5921
62 Kristen White 0 10 0.5921 0.5921
62 Nicholas Nguyen 0 10 0.5921 0.5921
62 Rachel Follo 1 10 0.5921 0.5921
69 Patrick Tynan 0 9 0.6569 0.5912
70 Louie Renew 1 10 0.5855 0.5855
70 Melissa Printup 0 10 0.5855 0.5855
72 Bunnaro Sun 0 10 0.5789 0.5789
73 Bryson Scott 0 9 0.6397 0.5757
73 James Small 0 9 0.6397 0.5757
75 Jason Jackson 0 10 0.5724 0.5724
76 Paul Presti 0 9 0.6350 0.5715
76 William Schouviller 1 9 0.6350 0.5715
78 Karen Coleman 0 9 0.6324 0.5692
79 Ryan Baum 0 9 0.6304 0.5674
80 Trevor Macgavin 0 10 0.5658 0.5658
81 Daniel Major 0 9 0.6131 0.5518
82 Nicholas Cinco 0 8 0.6833 0.5466
83 Thomas Brenstuhl 0 9 0.6029 0.5426
84 Darvin Graham 0 9 0.5956 0.5360
85 Earl Dixon 0 9 0.5942 0.5348
86 Zechariah Ziebarth 0 9 0.5870 0.5283
87 Wayne Schofield 0 10 0.5263 0.5263
88 Christopher Mulcahy 0 9 0.5797 0.5217
89 Gary Lawrence 0 10 0.5197 0.5197
90 Cheryl Brown 0 9 0.5766 0.5189
91 Clevante Granville 0 8 0.6417 0.5134
92 Philip Driskill 1 8 0.6371 0.5097
93 Brandon Parks 0 8 0.6364 0.5091
94 Robert Sokol 0 8 0.6333 0.5066
95 Ronald Schmidt 0 9 0.5620 0.5058
96 Marcus Evans 0 9 0.5588 0.5029
97 Joshua Tracey 0 9 0.5580 0.5022
98 Kyle May 0 9 0.5507 0.4956
98 Richard Conkle 0 9 0.5507 0.4956
100 Anthony Brinson 0 8 0.6148 0.4918
101 Derrick Elam 0 8 0.6098 0.4878
102 Noah Gosswiller 0 8 0.6066 0.4853
103 Jack Wheeler 0 9 0.5362 0.4826
104 Robert Lynch 0 9 0.5328 0.4795
105 Amy Asberry 0 8 0.5984 0.4787
106 Jose Torres Mendoza 0 8 0.5968 0.4774
107 George Mancini 0 8 0.5917 0.4734
108 Heather Kohler 0 7 0.6698 0.4689
109 Brian Patterson 0 8 0.5854 0.4683
110 Michael Linder 0 7 0.6667 0.4667
111 Akilah Gamble 1 8 0.5785 0.4628
111 Yiming Hu 0 8 0.5785 0.4628
113 Ryan Shipley 0 8 0.5738 0.4590
114 Pamela Augustine 0 7 0.6509 0.4556
115 Michael Moore 0 8 0.5610 0.4488
116 Jonathan Smith 0 8 0.5574 0.4459
117 Paul Seitz 0 7 0.6190 0.4333
118 David Plate 0 7 0.6168 0.4318
118 Kenneth Nielsen 0 7 0.6168 0.4318
120 Brian Hollmann 0 7 0.6154 0.4308
121 Steven Maisonneuve 1 6 0.7159 0.4295
122 Steven Webster 0 8 0.5246 0.4197
123 Robert Martin 0 8 0.5167 0.4134
124 Thomas Cho 0 7 0.5888 0.4122
125 Tara Bridgett 0 7 0.5872 0.4110
126 Andrew Gray 0 8 0.5081 0.4065
127 Jeremy Mounce 0 6 0.6667 0.4000
128 Joseph Martin 0 7 0.5607 0.3925
129 Anthony Rockemore 0 7 0.5514 0.3860
130 Jordan Forwood 0 6 0.6277 0.3766
131 Steward Hogans 0 6 0.6237 0.3742
132 Gabriel Quinones 0 7 0.5321 0.3725
133 Sheryl Claiborne-Smith 0 7 0.5283 0.3698
134 Jonathan Knight 0 6 0.6022 0.3613
135 Jay Kelly 0 7 0.5140 0.3598
136 Kevin Green 0 6 0.5978 0.3587
137 Megan Fitzgerald 0 6 0.5895 0.3537
138 Matthew Blair 0 5 0.7027 0.3514
139 Jason Miranda 0 6 0.5824 0.3494
140 Jennifer Wilson 0 6 0.5806 0.3484
141 Desmond Jenkins 0 6 0.5604 0.3362
142 Jamie Ainsleigh-Wong 0 6 0.5217 0.3130
143 David Hadley 0 5 0.6104 0.3052
144 Wayne Gokey 0 5 0.6026 0.3013
145 Min Choi 0 5 0.5526 0.2763
146 Ashlyn Dortch 0 5 0.4805 0.2402
147 Cherylynn Vidal 0 4 0.5938 0.2375
148 Brittany Pillar 0 3 0.7442 0.2233
149 Lawrence Thuotte 1 4 0.5484 0.2194
150 Jeremy Krammes 0 3 0.6957 0.2087
151 Vincent Kandian 0 4 0.5000 0.2000
152 George Hall 0 3 0.6522 0.1957
153 Donald Park 0 3 0.5435 0.1630
154 Ashley Johnson 0 3 0.4565 0.1369
155 Adam Konkle 0 2 0.5938 0.1188
155 Jeffrey Dusza 0 2 0.5938 0.1188
157 David Kim 0 2 0.5312 0.1062
157 Monte Henderson 0 2 0.5312 0.1062
159 Gabrieal Feiling 0 2 0.4688 0.0938
160 Clayton Grimes 0 1 0.8750 0.0875
161 Tanaysa Henderson 0 1 0.8571 0.0857
162 Brian Holder 0 1 0.7500 0.0750
162 Sandra Carter 0 1 0.7500 0.0750
162 Wallace Savage 0 1 0.7500 0.0750
165 Ryan Wiggins 0 1 0.7333 0.0733
166 Daniel Gray 0 1 0.6875 0.0688
166 Terrence Lee 0 1 0.6875 0.0688
168 Antonio Chapa 0 1 0.5000 0.0500
168 Zachary Brosemer 0 1 0.5000 0.0500
170 Jasprin Smith 0 1 0.3750 0.0375
170 Robert Epps 0 1 0.3750 0.0375

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 10 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
  mutate(Name = str_to_title(Name))
week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8 , week_9, week_10) #, week_11, week_12, week_13, week_14, week_15, week_16, week_17 , week_18, week_19 , week_20, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```